1. Field of the Invention
The present invention generally concerns access methods for computer peripheral devices, and in more particular concerns an access scheme that enables communication between a component and a peripheral device via an abstraction layer interface that prevents the component from directly accessing the device.
2. Background Information A typical computer platform, such as a personal computer, workstation, or server, generally includes one or more root buses to which various peripheral devices (devices) may be connected. These root buses include PCI buses, which are commonly found in many newer computers, as well as ISA, EISA, and micro-channel buses, which are termed legacy buses.
“Plug and play” functionality was introduced to the personal computer world when the PCI bus first became available in 1993. Plug and play functionality enables operating systems and other computer software and hardware to become apprised of a PCI device's capabilities and characteristics, whereby the user is not required to provide such configuration information. For example, on a first reboot after a PCI card has been installed, an operating system may be able to determine that the PCI card is a video card or modem with certain characteristics, and may further automatically configure the device, including identifying appropriate device drivers, and loading such drivers into the operating system when the PCI card is initialized.
While configuring PCI devices on a single root bus is generally handled well by today's computers, it is anticipated that more powerful computers and servers will be introduced that support a variety of different interface and peripheral types through the use of multiple root buses. In some configurations, these root buses may comprise fundamentally different types of root buses.
With most present BIOS's, an open IO (input/output) access is used. This means that IO access methods are assumed uniform through the POST process, and any device driver or optional ROM (OPROM) has full access to every other device's resources. There are situations where some devices may violate the access of other devices. For example, they can overwrite a resource without moving that resource, or self identify other devices so as to create problems for OPROM devices. They may also have unrestricted IO access (e.g., ISA bus devices). In addition, a driver may generate a PCI reset of its own without the POST process knowing about it. These problems become even larger in multiple root bus platforms.